8027d6fc: 27 bd ff 90  ADDIU sp, sp, 0xffffff90 (-112)
8027d700: af bf 00 1c  SW ra, sp, 0x1c (28)
8027d704: af a4 00 70  SW a0, sp, 0x70 (112)                   [sp + 0x70] === arg1
8027d708: af b0 00 18  SW s0, sp, 0x18 (24)

8027d70c: 8f ae 00 70  LW t6, sp, 0x70 (112)
8027d710: 85 cf 00 02  LH t7, t6, 0x2 (2)
8027d714: 31 f8 00 20  ANDI t8, t7, 0x20 (32)
8027d718: 00 18 c8 2b  SLTU t9, r0, t8
8027d71c: af b9 00 2c  SW t9, sp, 0x2c (44)                [sp + 0x2c] = (arg->off0x02 & 0x20) != 0;

8027d720: 3c 0a 80 33  LUI t2, 0x8033 (32819)
8027d724: 8d 4a de f0  LW t2, t2, 0xffffdef0 (-8464)
8027d728: 8f a8 00 70  LW t0, sp, 0x70 (112)
8027d72c: 91 4b 00 14  LBU t3, t2, 0x14 (20)
8027d730: 81 09 00 18  LB t1, t0, 0x18 (24)
8027d734: 15 2b 00 af  BNE t1, t3, 0x8027d9f4 (pc + 0x2bc) if (arg1->0x18 != (*(0x8032def0))->off0x14) goto 0x8027d9f4;
8027d738: 00 00 00 00  NOP

8027d73c: 8f ac 00 70  LW t4, sp, 0x70 (112)
8027d740: 8d 8d 00 50  LW t5, t4, 0x50 (80)
8027d744: 11 a0 00 0e  BEQ r0, t5, 0x8027d780 (pc + 0x38)  if (0 == arg1->off0x50) goto 0x8027d780;
8027d748: 00 00 00 00  NOP

8027d74c: 3c 0e 80 34  LUI t6, 0x8034 (32820)
8027d750: 85 ce ba e0  LH t6, t6, 0xffffbae0 (-17696)          t6 = *(0x8033bae0);
8027d754: 8f a8 00 70  LW t0, sp, 0x70 (112)
8027d758: 3c 19 80 34  LUI t9, 0x8034 (32820)
8027d75c: 00 0e 79 80  SLL t7, t6, 0x6 (6)                     t7 = *(0x8033bae0)*64
8027d760: 25 f8 00 40  ADDIU t8, t7, 0x40 (64)
8027d764: 27 39 ba e8  ADDIU t9, t9, 0xffffbae8 (-17688)       t9 = 0x8033bae8;
8027d768: 03 19 20 21  ADDU a0, t8, t9
8027d76c: 01 f9 30 21  ADDU a2, t7, t9
8027d770: 0c 0d e7 d8  JAL 0x80379f60 (-2143838368)        0x80379f60(&(0x8033bae8[*(0x8033bae0)+1]) , arg1->off0x50, &(0x8033bae8[*(0x8033bae0)]));
8027d774: 8d 05 00 50  LW a1, t0, 0x50 (80)

8027d778: 10 00 00 25  BEQ r0, r0, 0x8027d810 (pc + 0x94)  goto 0x8027d810;
8027d77c: 00 00 00 00  NOP

*
8027d780: 8f aa 00 70  LW t2, sp, 0x70 (112)
8027d784: 85 49 00 02  LH t1, t2, 0x2 (2)
8027d788: 31 2b 00 04  ANDI t3, t1, 0x4 (4)
8027d78c: 11 60 00 11  BEQ r0, t3, 0x8027d7d4 (pc + 0x44)  if (0 == (arg1->off0x02 & 4)) goto 0x8027d7d4;
8027d790: 00 00 00 00  NOP

8027d794: 3c 0c 80 34  LUI t4, 0x8034 (32820)
8027d798: 85 8c ba e0  LH t4, t4, 0xffffbae0 (-17696)
8027d79c: 3c 08 80 33  LUI t0, 0x8033 (32819)
8027d7a0: 8d 08 de fc  LW t0, t0, 0xffffdefc (-8452)
8027d7a4: 8f a6 00 70  LW a2, sp, 0x70 (112)
8027d7a8: 3c 18 80 34  LUI t8, 0x8034 (32820)
8027d7ac: 00 0c 69 80  SLL t5, t4, 0x6 (6)
8027d7b0: 25 ae 00 40  ADDIU t6, t5, 0x40 (64)
8027d7b4: 27 18 ba e8  ADDIU t8, t8, 0xffffbae8 (-17688)       t8 = 0x8033bae8
8027d7b8: 01 d8 20 21  ADDU a0, t6, t8
8027d7bc: 01 b8 28 21  ADDU a1, t5, t8
8027d7c0: 85 07 00 38  LH a3, t0, 0x38 (56)
8027d7c4: 0c 0d e5 e6  JAL 0x80379798 (-2143840360)        0x80379798(&(0x8033bae8[*(0x8033bae0)+1]), &(0x8033bae8[*(0x8033bae0)]), &(arg1->off0x20), (*(0x8032def6))->off0x38);
8027d7c8: 24 c6 00 20  ADDIU a2, a2, 0x20 (32)

8027d7cc: 10 00 00 10  BEQ r0, r0, 0x8027d810 (pc + 0x40)  goto 0x8027d810;
8027d7d0: 00 00 00 00  NOP

*
8027d7d4: 8f af 00 70  LW t7, sp, 0x70 (112)
8027d7d8: 27 a4 00 30  ADDIU a0, sp, 0x30 (48)
8027d7dc: 25 e5 00 20  ADDIU a1, t7, 0x20 (32)
8027d7e0: 0c 0d e5 10  JAL 0x80379440 (-2143841216)        0x80379440(&[sp + 0x30], &(arg1->off0x20), &(arg1->off0x1a));
8027d7e4: 25 e6 00 1a  ADDIU a2, t7, 0x1a (26)

8027d7e8: 3c 19 80 34  LUI t9, 0x8034 (32820)
8027d7ec: 87 39 ba e0  LH t9, t9, 0xffffbae0 (-17696)
8027d7f0: 3c 0b 80 34  LUI t3, 0x8034 (32820)
8027d7f4: 25 6b ba e8  ADDIU t3, t3, 0xffffbae8 (-17688)
8027d7f8: 00 19 51 80  SLL t2, t9, 0x6 (6)
8027d7fc: 25 49 00 40  ADDIU t1, t2, 0x40 (64)
8027d800: 01 2b 20 21  ADDU a0, t1, t3
8027d804: 01 4b 30 21  ADDU a2, t2, t3
8027d808: 0c 0d e7 d8  JAL 0x80379f60 (-2143838368)        0x80379f60(&(0x8033bae8[*(0x8033bae0)+1]), &[sp + 0x30], &(0x8033bae8[*(0x8033bae0)]));
8027d80c: 27 a5 00 30  ADDIU a1, sp, 0x30 (48)

**
8027d810: 3c 0c 80 34  LUI t4, 0x8034 (32820)
8027d814: 85 8c ba e0  LH t4, t4, 0xffffbae0 (-17696)
8027d818: 8f a6 00 70  LW a2, sp, 0x70 (112)
8027d81c: 3c 18 80 34  LUI t8, 0x8034 (32820)
8027d820: 00 0c 71 80  SLL t6, t4, 0x6 (6)
8027d824: 25 cd 00 40  ADDIU t5, t6, 0x40 (64)
8027d828: 25 c8 00 40  ADDIU t0, t6, 0x40 (64)
8027d82c: 27 18 ba e8  ADDIU t8, t8, 0xffffbae8 (-17688)
8027d830: 01 b8 20 21  ADDU a0, t5, t8
8027d834: 01 18 28 21  ADDU a1, t0, t8
8027d838: 0c 0d e8 a7  JAL 0x8037a29c (-2143837540)        0x8037a29c(&(0x8033bae8[*(0x8033bae0)+1]), &(0x8033bae8[*(0x8033bae0)+1]), &(arg1->off0x2c));
8027d83c: 24 c6 00 2c  ADDIU a2, a2, 0x2c (44)

8027d840: 3c 10 80 34  LUI s0, 0x8034 (32820)
8027d844: 86 10 ba e0  LH s0, s0, 0xffffbae0 (-17696)
8027d848: 8f ac 00 70  LW t4, sp, 0x70 (112)
8027d84c: 3c 0a 80 34  LUI t2, 0x8034 (32820)
8027d850: 26 10 00 01  ADDIU s0, s0, 0x1 (1)
8027d854: 00 10 7c 00  SLL t7, s0, 0x10 (16)
8027d858: 01 e0 80 25  OR s0, t7, r0
8027d85c: 00 10 cc 03  SRA t9, s0, 0x10 (16)
8027d860: 03 20 80 25  OR s0, t9, r0
8027d864: 00 10 49 80  SLL t1, s0, 0x6 (6)
8027d868: 25 4a ba e8  ADDIU t2, t2, 0xffffbae8 (-17688)
8027d86c: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d870: a4 30 ba e0  SH s0, at, 0xffffbae0 (-17696)
8027d874: 01 2a 58 21  ADDU t3, t1, t2
8027d878: ad 8b 00 50  SW t3, t4, 0x50 (80)                arg1->off0x50 = &(0x8033bae8[++*(0x8033bae0)]);

8027d87c: 3c 0d 80 34  LUI t5, 0x8034 (32820)
8027d880: 85 ad ba e0  LH t5, t5, 0xffffbae0 (-17696)
8027d884: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d888: 8f a8 00 70  LW t0, sp, 0x70 (112)
8027d88c: 00 0d 71 80  SLL t6, t5, 0x6 (6)
8027d890: 00 2e 08 21  ADDU at, at, t6
8027d894: c4 24 bb 18  LWC1 f4, at, 0xffffbb18 (-17640)
8027d898: e5 04 00 54  SWC1 f4, t0, 0x54 (84)              arg1->off0x54 = *(0x8033bb18 + *(0x8033bae0)*64);

8027d89c: 3c 18 80 34  LUI t8, 0x8034 (32820)
8027d8a0: 87 18 ba e0  LH t8, t8, 0xffffbae0 (-17696)
8027d8a4: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d8a8: 8f b9 00 70  LW t9, sp, 0x70 (112)
8027d8ac: 00 18 79 80  SLL t7, t8, 0x6 (6)
8027d8b0: 00 2f 08 21  ADDU at, at, t7
8027d8b4: c4 26 bb 1c  LWC1 f6, at, 0xffffbb1c (-17636)
8027d8b8: e7 26 00 58  SWC1 f6, t9, 0x58 (88)              arg1->off0x58 = *(0x8033bb1c + *(0x8033bae0)*64);

8027d8bc: 3c 09 80 34  LUI t1, 0x8034 (32820)
8027d8c0: 85 29 ba e0  LH t1, t1, 0xffffbae0 (-17696)
8027d8c4: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d8c8: 8f ab 00 70  LW t3, sp, 0x70 (112)
8027d8cc: 00 09 51 80  SLL t2, t1, 0x6 (6)
8027d8d0: 00 2a 08 21  ADDU at, at, t2
8027d8d4: c4 28 bb 20  LWC1 f8, at, 0xffffbb20 (-17632)
8027d8d8: e5 68 00 5c  SWC1 f8, t3, 0x5c (92)              arg1->off0x5c = *(0x8033bb20 + *(0x8033bae0)*64);

8027d8dc: 8f ac 00 70  LW t4, sp, 0x70 (112)
8027d8e0: 8d 8d 00 3c  LW t5, t4, 0x3c (60)
8027d8e4: 11 a0 00 05  BEQ r0, t5, 0x8027d8fc (pc + 0x14)  if (0 == arg1->off0x3c) goto 0x8027d8fc;
8027d8e8: 00 00 00 00  NOP

8027d8ec: 8f a4 00 70  LW a0, sp, 0x70 (112)
8027d8f0: 8f a5 00 2c  LW a1, sp, 0x2c (44)
8027d8f4: 0c 09 f3 ce  JAL 0x8027cf38 (-2144874696)        0x8027cf38(&(arg1->off0x38), [sp + 0x2c]);
8027d8f8: 24 84 00 38  ADDIU a0, a0, 0x38 (56)

*
8027d8fc: 3c 0e 80 34  LUI t6, 0x8034 (32820)
8027d900: 85 ce ba e0  LH t6, t6, 0xffffbae0 (-17696)
8027d904: 3c 18 80 34  LUI t8, 0x8034 (32820)
8027d908: 27 18 ba e8  ADDIU t8, t8, 0xffffbae8 (-17688)
8027d90c: 00 0e 41 80  SLL t0, t6, 0x6 (6)
8027d910: 01 18 28 21  ADDU a1, t0, t8
8027d914: 0c 09 f5 46  JAL 0x8027d518 (-2144873192)
8027d918: 8f a4 00 70  LW a0, sp, 0x70 (112)
8027d91c: 10 40 00 2c  BEQ r0, v0, 0x8027d9d0 (pc + 0xb0)  if (0 == 0x8027d518(arg1, &(0x8033bae8[*(0x8033bae0)]))) goto 0x8027d9d0;
8027d920: 00 00 00 00  NOP

8027d924: 0c 09 e3 cb  JAL 0x80278f2c (-2144891092)        [sp + 0x28] = 0x80278f2c(64); /* alloc memory */
8027d928: 24 04 00 40  ADDIU a0, r0, 0x40 (64)
8027d92c: af a2 00 28  SW v0, sp, 0x28 (40)

8027d930: 3c 0f 80 34  LUI t7, 0x8034 (32820)
8027d934: 85 ef ba e0  LH t7, t7, 0xffffbae0 (-17696)
8027d938: 3c 09 80 34  LUI t1, 0x8034 (32820)
8027d93c: 25 29 ba e8  ADDIU t1, t1, 0xffffbae8 (-17688)
8027d940: 00 0f c9 80  SLL t9, t7, 0x6 (6)
8027d944: 03 29 28 21  ADDU a1, t9, t1
8027d948: 0c 0d e9 0d  JAL 0x8037a434 (-2143837132)        0x8037a434([sp + 0x28], &(0x8033bae8[*(0x8033bae0)]));
8027d94c: 8f a4 00 28  LW a0, sp, 0x28 (40)

8027d950: 3c 0b 80 34  LUI t3, 0x8034 (32820)
8027d954: 85 6b ba e0  LH t3, t3, 0xffffbae0 (-17696)
8027d958: 8f aa 00 28  LW t2, sp, 0x28 (40)
8027d95c: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d960: 00 0b 60 80  SLL t4, t3, 0x2 (2)
8027d964: 00 2c 08 21  ADDU at, at, t4
8027d968: ac 2a c2 e8  SW t2, at, 0xffffc2e8 (-15640)      0x8033c2e8[*(0x8033bae0)] = [sp + 0x28];

8027d96c: 8f ad 00 70  LW t5, sp, 0x70 (112)
8027d970: 8d ae 00 14  LW t6, t5, 0x14 (20)
8027d974: 11 c0 00 0f  BEQ r0, t6, 0x8027d9b4 (pc + 0x3c)  if (0 == arg1->off0x14) goto 0x8027d9b4;
8027d978: 00 00 00 00  NOP

8027d97c: 8f a8 00 70  LW t0, sp, 0x70 (112)
8027d980: 3c 01 80 33  LUI at, 0x8033 (32819)
8027d984: ac 28 df 00  SW t0, at, 0xffffdf00 (-8448)       *(0x8032df00) = arg1;

8027d988: 8f b8 00 70  LW t8, sp, 0x70 (112)
8027d98c: 8f 0f 00 14  LW t7, t8, 0x14 (20)
8027d990: ad f8 00 0c  SW t8, t7, 0xc (12)                 arg1->off0x14->off0x0c = arg1;

8027d994: 8f b9 00 70  LW t9, sp, 0x70 (112)
8027d998: 0c 09 f7 aa  JAL 0x8027dea8 (-2144870744)        0x8027dea8(arg1->off0x14);
8027d99c: 8f 24 00 14  LW a0, t9, 0x14 (20)

8027d9a0: 8f a9 00 70  LW t1, sp, 0x70 (112)
8027d9a4: 8d 2b 00 14  LW t3, t1, 0x14 (20)
8027d9a8: ad 60 00 0c  SW r0, t3, 0xc (12)                 arg1->off0x14->off0x0c = 0;

8027d9ac: 3c 01 80 33  LUI at, 0x8033 (32819)
8027d9b0: ac 20 df 00  SW r0, at, 0xffffdf00 (-8448)       *(0x8032df00) = 0;

*
8027d9b4: 8f aa 00 70  LW t2, sp, 0x70 (112)
8027d9b8: 8d 4c 00 10  LW t4, t2, 0x10 (16)
8027d9bc: 11 80 00 04  BEQ r0, t4, 0x8027d9d0 (pc + 0x10)  if (0 == arg1->off0x10) goto 0x8027d9d0;
8027d9c0: 00 00 00 00  NOP

8027d9c4: 8f ad 00 70  LW t5, sp, 0x70 (112)
8027d9c8: 0c 09 f7 aa  JAL 0x8027dea8 (-2144870744)        0x8027dea8(arg1->off0x10);
8027d9cc: 8d a4 00 10  LW a0, t5, 0x10 (16)

**
8027d9d0: 3c 0e 80 34  LUI t6, 0x8034 (32820)
8027d9d4: 85 ce ba e0  LH t6, t6, 0xffffbae0 (-17696)
8027d9d8: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d9dc: 25 c8 ff ff  ADDIU t0, t6, 0xffffffff (-1)
8027d9e0: a4 28 ba e0  SH t0, at, 0xffffbae0 (-17696)      *(0x8033bae0)--;

8027d9e4: 3c 01 80 34  LUI at, 0x8034 (32820)
8027d9e8: a0 20 c3 78  SB r0, at, 0xffffc378 (-15496)      *(0x8033c378) = 0;

8027d9ec: 8f b8 00 70  LW t8, sp, 0x70 (112)
8027d9f0: af 00 00 50  SW r0, t8, 0x50 (80)                arg1->off0x50 = 0;

*
8027d9f4: 10 00 00 01  BEQ r0, r0, 0x8027d9fc (pc + 0x4)
8027d9f8: 00 00 00 00  NOP
8027d9fc: 8f bf 00 1c  LW ra, sp, 0x1c (28)
8027da00: 8f b0 00 18  LW s0, sp, 0x18 (24)
8027da04: 27 bd 00 70  ADDIU sp, sp, 0x70 (112)
8027da08: 03 e0 00 08  JR ra
8027da0c: 00 00 00 00  NOP


[sp + 0x2c] = (arg->off0x02 & 0x20) != 0;
if (arg1->0x18 != (*(0x8032def0))->off0x14) goto 0x8027d9f4;
if (0 == arg1->off0x50) goto 0x8027d780;
0x80379f60(&(0x8033bae8[*(0x8033bae0)+1]) , arg1->off0x50, &(0x8033bae8[*(0x8033bae0)]));
goto 0x8027d810;
8027d780:
if (0 == (arg1->off0x02 & 4)) goto 0x8027d7d4;
0x80379798(&(0x8033bae8[*(0x8033bae0)+1]), &(0x8033bae8[*(0x8033bae0)]), &(arg1->off0x20), (*(0x8032def6))->off0x38);
goto 0x8027d810;
8027d7d4:
0x80379440(&[sp + 0x30], &(arg1->off0x20), &(arg1->off0x1a));
0x80379f60(&(0x8033bae8[*(0x8033bae0)+1]), &[sp + 0x30], &(0x8033bae8[*(0x8033bae0)]));
8027d810:
8027d810:
0x8037a29c(&(0x8033bae8[*(0x8033bae0)+1]), &(0x8033bae8[*(0x8033bae0)+1]), &(arg1->off0x2c));
arg1->off0x50 = &(0x8033bae8[++*(0x8033bae0)]);
arg1->off0x54 = *(0x8033bb18 + *(0x8033bae0)*64);
arg1->off0x58 = *(0x8033bb1c + *(0x8033bae0)*64);
arg1->off0x5c = *(0x8033bb20 + *(0x8033bae0)*64);
if (0 == arg1->off0x3c) goto 0x8027d8fc;
0x8027cf38(&(arg1->off0x38), [sp + 0x2c]);
8027d8fc:
if (0 == 0x8027d518(arg1, &(0x8033bae8[*(0x8033bae0)]))) goto 0x8027d9d0;
[sp + 0x28] = 0x80278f2c(64); /* alloc memory */
0x8037a434([sp + 0x28], &(0x8033bae8[*(0x8033bae0)]));
0x8033c2e8[*(0x8033bae0)] = [sp + 0x28];
if (0 == arg1->off0x14) goto 0x8027d9b4;
*(0x8032df00) = arg1;
arg1->off0x14->off0x0c = arg1;
0x8027dea8(arg1->off0x14);
arg1->off0x14->off0x0c = 0;
*(0x8032df00) = 0;
8027d9b4:
if (0 == arg1->off0x10) goto 0x8027d9d0;
0x8027dea8(arg1->off0x10);
8027d9d0:
8027d9d0:
*(0x8033bae0)--;
*(0x8033c378) = 0;
arg1->off0x50 = 0;
8027d9f4:



[sp + 0x2c] = (arg->off0x02 & 0x20) != 0;
if (arg1->0x18 == (*(0x8032def0))->off0x14) {

    if (arg1->off0x50) {
        0x80379f60(&(0x8033bae8[*(0x8033bae0)+1]) , arg1->off0x50, &(0x8033bae8[*(0x8033bae0)]));
    } else {
        if (arg1->off0x02 & 4) {
            0x80379798(&(0x8033bae8[*(0x8033bae0)+1]), &(0x8033bae8[*(0x8033bae0)]), &(arg1->off0x20), (*(0x8032def6))->off0x38);
        } else {
            0x80379440(&[sp + 0x30], &(arg1->off0x20), &(arg1->off0x1a));
            0x80379f60(&(0x8033bae8[*(0x8033bae0)+1]), &[sp + 0x30], &(0x8033bae8[*(0x8033bae0)]));
        }
    }
    
    0x8037a29c(&(0x8033bae8[*(0x8033bae0)+1]), &(0x8033bae8[*(0x8033bae0)+1]), &(arg1->off0x2c));
    arg1->off0x50 = &(0x8033bae8[++*(0x8033bae0)]);
    arg1->off0x54 = *(0x8033bb18 + *(0x8033bae0)*64);
    arg1->off0x58 = *(0x8033bb1c + *(0x8033bae0)*64);
    arg1->off0x5c = *(0x8033bb20 + *(0x8033bae0)*64);
    
    if (arg1->off0x3c) {
        0x8027cf38(&(arg1->off0x38), [sp + 0x2c]);
    }
    
    if (0x8027d518(arg1, &(0x8033bae8[*(0x8033bae0)]))) {
        [sp + 0x28] = 0x80278f2c(64); /* alloc memory */
        0x8037a434([sp + 0x28], &(0x8033bae8[*(0x8033bae0)]));
        0x8033c2e8[*(0x8033bae0)] = [sp + 0x28];
        
        if (arg1->off0x14) {
            *(0x8032df00) = arg1;          /* used by functions in the geo layout (at least the yoshi blink does) */
            arg1->off0x14->off0x0c = arg1; /* make this node the parent of its geo layout */
            0x8027dea8(arg1->off0x14);     /* process geo layout */
            arg1->off0x14->off0x0c = 0;
            *(0x8032df00) = 0;
        }
        
        if (arg1->off0x10) {
            0x8027dea8(arg1->off0x10);
        }
    }
    *(0x8033bae0)--;
    *(0x8033c378) = 0;
    arg1->off0x50 = 0;
}
